<?php
/**
 * Системный cli контролер, содержит методы которые позволяют 
 * выполнять различные операции в системе.
 * 
 * @author nrnwest@gmail.com
 *
 */
class CliController extends Arm_Controller_CliAction
{
    /**
     * Строитель полей для форм, на основе таблиц в базе данных.
     * На основании prefix определяет в какой класс будут добавленны 
     * поля.
     * 
     * @param string $prefix префикс начало имен таблиц, соотвествует директории модуля.
     */
    public function bfAction()
    {
        $prefix  = $this->_getParam('prefix');
        if($prefix !== null) {
            $builder = new Arm_Form_Builder();
            $count = $builder->elements($prefix);
            $this->getResponse()->setBody(Arm_Translate::_('Добавленно полей: %s, префикс %s ', array($count, $prefix)));
        } else {
            $this->getResponse()->setBody(Arm_Translate::_('Вы должны указать параметер previx, 
            это имя дериктории модуля, начало имени его таблиц в базе данных'));
        }
    }
    
    /**
     * Записывает шаблоны сообщений валидаторов в файл .../_resource/*MessagesTemplate.php
     * Для возможности их дальнейшего обноружения сканером трансляции.
     * 
     * @param string $in где производить поиск в библиотеках или модулях: library|module
     * @param string $name названия библиотеки или модуля: Arm|Zend|default|...
     */
    public function vtAction()
    {
       $searshIn = $this->_getParam('in');
       $name     = $this->_getParam('name');
       if($searshIn === null) {
           $this->getResponse()->setBody(Arm_Translate::_('Вы должны указать параметер in с возможными значениями "%s"', implode('|', 
           array(Arm_Translate_ValidateTemplate::SEARSH_LIBRARY, Arm_Translate_ValidateTemplate::SEARSH_MODULE))));
           return;
       }
       if($name === null) {
           $this->getResponse()->setBody(Arm_Translate::_('Вы должны указать параметер name с началом названия классов валидаторов: "Arm|Zend|User..."'));
           return;   
       }
       $zv   = new Arm_Translate_ValidateTemplate($searshIn, $name);
       $file = $zv->run();
       if($file === false) {
           $this->getResponse()->setBody(Arm_Translate::_('Не обнаруженны сообщения валидаторов, проверьте правильность заданных параметров'));
           return; 
       }
       $this->getResponse()->setBody(Arm_Translate::_('Шаблоны сообщений записаны в файл: %s', $file) .  "\n"); 
    }
    

}